package com.bestcem.xm.deliver.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bestcem.xm.component.mybatis.base.BaseEntity2;
import com.bestcem.xm.component.mybatis.format.String2JacksonSerializer;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * @TableName ds_deliver_wechatmprecord
 */
@TableName(value = "ds_deliver_wechatmprecord")
@Data
@EqualsAndHashCode(callSuper = true)
public class DeliverWechatmpRecord extends BaseEntity2 {
    @TableId(value = "id")
    private String id;

    /**
     * 投放记录id
     */
    @JSONField(name = "mp_deliver_id")
    @TableField(value = "mp_deliver_id")
    @JsonProperty("mp_deliver_id")
    private String mpDeliverId;

    /**
     * 用户ID
     */
    @JSONField(name = "member_id")
    @TableField(value = "member_id")
    @JsonProperty("member_id")
    private String memberId;

    /**
     * 投放id
     */
    @JSONField(name = "deliver_id")
    @TableField(value = "deliver_id")
    @JsonProperty("deliver_id")
    private String deliverId;

    /**
     * 邮件内容
     */
    @TableField(value = "content")
    @JsonSerialize(using = String2JacksonSerializer.class)
    private String content;

    /**
     * appid
     */
    @TableField(value = "appid")
    private String appid;

    /**
     * 用户id
     */
    @TableField(value = "openid")
    private String openid;

    /**
     * 微信昵称
     */
    @TableField(value = "nickname")
    private String nickname;

    /**
     * 用户名
     */
    @TableField(value = "username")
    private String username;

    /**
     * 参数
     */
    @TableField(value = "params")
    @JsonSerialize(using = String2JacksonSerializer.class)
    private String params;

    /**
     * 第三方标识
     */
    @TableField(value = "msgid")
    private String msgid;

    /**
     * 记录描述
     */
    @TableField(value = "msg")
    private String msg;

    /**
     * status
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 答卷状态
     */
    @TableField(value = "rspd_status")
    @JsonProperty("rspd_status")
    private Integer rspdStatus;

    /**
     * 推送时间
     */
    @TableField(value = "push_time")
    @JsonProperty("push_time")
    private LocalDateTime pushTime;
}